// PgPlotter.h - MARIN MSG Anneke Sicherer-Roetman 20080609

#ifndef PGPLOTTER_H
#define PGPLOTTER_H

#include <string>
#include "Plotter.h"

#define PGPLOTTER_BASE Plotter

/// pgplot plotting class
class PgPlotter : public PGPLOTTER_BASE
{
    typedef PGPLOTTER_BASE base;
    
public:
    
    PgPlotter(int xmin, int ymin, int xmax, int ymax,
              const Array2D<float> &plot, const std::string &caption, float fmin, float fmax);
    
    virtual ~PgPlotter();

    virtual void plot();
    
    virtual void run();
    
private:
    
    /// @cond nevercall
    // should never be called
    PgPlotter();
    PgPlotter(const PgPlotter& m);
    PgPlotter& operator=(const PgPlotter& m);
    /// @endcond

    float *m_Fplot;                  ///< one dimensional plot array
    float  m_Fmin;                   ///< minimum value to be plotted
    float  m_Fmax;                   ///< maximum value to be plotted
    std::string m_previousCaption;   ///< so it can be erased again
};

#endif // PGPLOTTER_H
